package com.dlc.shop.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dlc.shop.bean.app.dto.ShopCartItemDto;
import com.dlc.shop.bean.model.SkuCombo;
import com.dlc.shop.bean.vo.SkuComboVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 规格组合商品关联表
 * @author LGH
 */
public interface SkuComboMapper extends BaseMapper<SkuCombo> {
    /**
     * 根据组合关联的skuId获取所有组合商品信息
     *
     * @param prodIds
     * @param skuIds
     * @return
     */
    List<Long> getCombSpusByComboSpuIdsOrSkuIds(@Param("prodIds") List<Long> prodIds, @Param("skuIds") List<Long> skuIds);


    /**
     * 通过关联skuId删除关联信息
     * @param skuIds
     */
    void deleteByComboSkuIds(@Param("skuIds") List<Long> skuIds);

    /**
     * 根据skuId获取所有组合商品信息
     *
     * @param skuIds
     * @param lang
     * @return
     */
    List<SkuComboVO> listCombProdBySkuIds(@Param("skuIds") List<Long> skuIds, @Param("lang") Integer lang);

    /**
     * 根据skuId获取所有组合商品信息
     *
     * @param spuIds
     * @return
     */
    List<SkuComboVO> listCombProdByProdIds(@Param("spuIds") List<Long> spuIds);

    /**
     * 获取组合商品购物项信息
     *
     * @param skuIds
     * @return
     */
    List<ShopCartItemDto> listCombShopItemsAndBySkuId(@Param("skuIds") List<Long> skuIds);

    /**
     * 或者组合sku的单品列表
     * @param comboSkuIds
     * @return
     */
    List<SkuComboVO> listSkuComboVOBySkuIds(@Param("comboSkuIds") List<Long> comboSkuIds);
}
